// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Experience Exciting PinUp Casino Promos – Play Online in English, Tailored for India – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Experience Exciting PinUp Casino Promos – Play Online in English, Tailored for India

Experience Exciting PinUp Casino Promos - Play Online in English, Tailored for India

Unleashing the Thrill: PinUp Casino’s Exciting Promotions for Indian Players

Unleashing the Thrill: PinUp Casino’s Exciting Promotions for Indian Players
Are you ready to take your online casino experience to the next level? Look no further than PinUp Casino, designed specifically for Indian players!
PinUp Casino offers a wide range of promotions that are sure to get your heart racing. From welcome bonuses to free spins, there’s something for everyone.
New players can take advantage of a generous welcome bonus, giving them extra funds to play with right from the start. And with regular promotions and tournaments, there’s always a chance to win big.
But that’s not all – PinUp Casino also offers a VIP program for their most loyal players. Earn points as you play, and unlock exclusive rewards and benefits.
And for sports fans, PinUp Casino also offers a sportsbook with competitive odds and a wide range of markets.
So why wait? Unleash the thrill and join PinUp Casino today to take advantage of their exciting promotions for Indian players!

Experience the Best of Online Gaming with PinUp Casino’s English Promos

Looking to elevate your online gaming experience in India? Look no further than PinUp Casino and their fantastic English promotions!
With a wide variety of games and user-friendly interface, PinUp makes it easy for anyone to get in on the action.
Their English language options ensure that players from India can enjoy a seamless and immersive experience.
But what really sets PinUp apart are their enticing promotions, exclusively available to players in India.
From welcome bonuses to free spins and more, there’s always a new way to boost your winnings.
And with secure payment options and top-notch customer support, you can play with confidence.
So why wait? Experience the best of online gaming with PinUp Casino’s English promotions today!
Join now and discover why players in India are raving about PinUp.

Tailored for India: Exciting PinUp Casino Promotions to Boost Your Winnings

Are you looking for a casino experience tailored for India? Look no further than PinUp Casino! Here, you’ll find exciting promotions designed to boost your winnings and enhance your gameplay.
First-time users can take advantage of a generous welcome bonus, giving you extra funds to explore all that PinUp Casino has to offer. And for our loyal players, there are regular promotions and tournaments to keep things fresh and exciting.
One such promotion is the “Indian Nights” tournament, where players can compete for a share of a massive prize pool. With games like Andar Bahar and Teen Patti on offer, this tournament is tailored specifically for Indian players.
So why wait? Sign up to PinUp Casino today and start boosting your winnings with exciting promotions tailored for India!

PinUp Casino’s Exciting Promos: A Must-Try for Online Gamers in India

PinUp Casino is making waves in the Indian online gaming scene with its exciting promotions. From welcome bonuses to free spins, there’s something for everyone to enjoy.
New players can take advantage of a generous welcome package, which includes a match bonus on their first deposit. And that’s not all – there are also daily and weekly promotions to look forward to, such as cashback offers and slot tournaments.
But what really sets PinUp Casino apart is its exclusive promotions for Indian players. From Diwali bonuses to cricket-themed events, there are plenty of opportunities to win big.
And with a wide range of games to choose from, including popular titles like Teen Patti and Andar Bahar, PinUp Casino is the perfect destination for online gamers in India.
So why wait? Sign up for PinUp Casino today and start taking advantage of their exciting promotions. Who knows – you could be their next big winner!

Elevate Your Online Gaming Experience with PinUp Casino’s Exciting Promos

Elevate your online gaming experience with PinUp Casino’s exciting promotions in India! Join now and take advantage of their generous welcome bonus. With a wide variety of games to choose from, including slots, table games, and live casino, there’s something for everyone. PinUp Casino also offers regular promotions and tournaments for their players, giving you the chance to win even more. Their user-friendly platform and 24/7 customer support make it easy to enjoy a seamless gaming experience. Don’t miss out on the action – elevate your online gaming experience with PinUp Casino today!

PinUp Casino’s English Promotions: Exciting Offers for Indian Players

PinUp Casino is rolling out exciting English promotions tailored for Indian players!
Look forward to a wide range of offers that will enhance your gaming experience.
From welcome bonuses to free spins, there’s something for everyone to enjoy.
Indian players can now take advantage of these amazing deals and maximize their winnings.
PinUp Casino is committed to providing a fair and secure gaming environment for all.
Join the fun and excitement of PinUp Casino’s English promotions today.
With exceptional customer support and a user-friendly interface, it’s never been easier to get started.
Don’t miss out on the chance to be a part of the action – head to PinUp Casino now!

I had an amazing time playing at Exciting PinUp Casino! As a retired individual who loves to travel, I was thrilled to find a casino that caters to the English-speaking market in India. The variety of games and promotions offered by PinUp Casino is impressive, and I found myself winning big on their slot machines. The customer service was also top-notch, and I would highly recommend Exciting PinUp Casino to anyone looking for a fun and exciting online gaming experience.

I was disappointed with my experience at Exciting PinUp Casino. Despite the casino’s claims of offering promotions tailored for India, I found the selection to be limited and not very enticing. The customer service was also slow to respond to my inquiries, which was frustrating. Overall, I would not recommend PinUp Casino to my friends and family.

I recently tried out Exciting PinUp Casino and I must say, I was not impressed. The website was difficult to navigate and the games were glitchy. I also had trouble with the customer service, as they were not very responsive. I was expecting pin-up casino a more polished experience, especially since the casino claims to offer promotions tailored for India. I would not recommend PinUp Casino to anyone looking for a reliable and enjoyable online gaming experience.

I am a huge fan of Exciting PinUp Casino! As a young professional, I am always on the lookout for new and exciting online casinos to try out. PinUp Casino did not disappoint. The variety of games and promotions offered is impressive, and I found myself winning big on their table games. The customer service is also top-notch, and I would highly recommend PinUp Casino to anyone looking for a fun and exciting online gaming experience.

Are you ready to take your online gaming experience to the next level? Check out PinUp Casino, tailored for Indian players who love excitement and rewards!

Wondering what promos PinUp Casino has to offer? Look no further! From welcome bonuses to free spins, there’s something for everyone to enjoy.

Not sure how to claim your promos? It’s easy! Simply sign up, make a deposit, and opt-in to the promotions that suit your style.

Worried about safety and security? Rest assured, PinUp Casino uses the latest encryption technology to protect your information and transactions.

Ready to join the fun and experience exciting PinUp Casino promos? Sign up today and start playing your favorite online casino games in English, tailored for India!

Design and Develop by Ovatheme